package com.passive.lock.service.user;

import java.util.List;

import com.passive.lock.model.vo.TDeptVo;
import com.passive.lock.model.vo.TUserVo;
import com.passive.lock.utils.Result;

public interface DeptService {
	/**
	 * 添加部门
	 * 
	 * @param tDeptVo
	 * @return
	 */
	Result addDept(TDeptVo tDeptVo);
	
	
	/**
	 * 添加公司
	 * 
	 * @param tDeptVo
	 * @return
	 */
	Result addCompany(TDeptVo tDeptVo);

	/**
	 * 查询公司或者部门列表
	 * 
	 * @param pid
	 * @return
	 */
	List<TDeptVo> deptList(String groupid,TDeptVo tDeptVo, Integer offset, Integer limit);
	
	/**
	 * 查询公司或者部门总数
	 * 
	 * @param pid
	 * @return
	 */
	int deptListCount(String groupid,TDeptVo tDeptVo);

	/**
	 * 更新公司或者部门列表
	 * 
	 * @param pid
	 * @return
	 */
	Result updateDept(TDeptVo tDeptVo);
	
	/**
	 * 查询公司或者部门Tree
	 * 
	 * @param pid
	 * @return
	 */
	Result groupTree(String deptId);
	
	
	/**
	 * 查询公司或者部门Tree
	 * 
	 * @param pid
	 * @return
	 */
	Result companyTree(String companyId);
	
	
	/**
	 * 删除公司
	 * 
	 * @param pid
	 * @return
	 */
	Result deleteDept(TDeptVo tDeptVo);
	/**
	 * 批量删除公司
	 * 
	 * @param pid
	 * @return
	 */
	Result deleteDeptList(List<String> ids);

	
	/**
	 * 查询公司信息
	 * 
	 * @param pid
	 * @return
	 */
	Result queryCompany(String id);
	/**
	 * 查询部门Tree
	 * 
	 * @param pid
	 * @return
	 */
	Result deptTree(String companyId);



	Result queryMapTree1(String pid);


	Result queryMapTree2(String pid);

	/**
	 * 根据用户权限查询组织树
	 * 
	 * @param groupid
	 * @return
	 */
	Result groupTreeById(String groupid);

	

}
